package es.ucm.is.www.chart;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.xy.XYDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;

public class Chart {
	/**
	 * <p>Title: Chart.java </p>
	 *
	 * <p>Description: Clase que genera las graficas para usar en la clase estadisticas
	 * usando JFreeChart. </p>
	 *
	 * <p>Copyright: Carlos Jimenez Barral</p>
	 *
	 * @author Carlos Jimenez Barral
	 * @version 1.0
	 * @see
	 */ 
	/**
	 * @param chart: variable sobre la que se genera la grafica.
	 */
	private JFreeChart chart;
	/**
	 *<p>Description: Constructora que se encarga de generar la imagen de la grafica
	 *y la guarda en la ruta especificada</p>
	 *@param valores1: Uno de los rangos de valores a mostrar
	 *@param valores2: Uno de los rangos de valores a mostrar
	 *@param ruta: Ruta donde se guarda la imagen de la grafica generada
	 */
	public Chart(ArrayList<Integer> valores1,ArrayList<Integer> valores2, String ruta){
		XYSeries series1 = new XYSeries("Jugadores registrados");
		XYSeries series2 = new XYSeries("Jugadores conectados");
		for(int i = 0; i < valores1.size(); i++){
			series1.add(i, valores1.get(i));
		}
		for(int i = 0; i < valores2.size(); i++){
			series2.add(i, valores2.get(i));
		}
		XYSeriesCollection a = new XYSeriesCollection(series1);
		a.addSeries(series2);

        XYDataset evolucion= a;
        chart = ChartFactory.createXYLineChart("Resultados", 
        		"X","Numero de jugadores", evolucion, PlotOrientation.VERTICAL, true, true, true);
        File f = new File(ruta);
        try {
			ChartUtilities.saveChartAsPNG(f, chart, 400, 400);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	
}
